#include<stdio.h>
int main()
{
    int n,m,j,i;
	scanf("%d %d",&n,&m);
	int a[101][101],rowsum[101]={0},colsum[101]={0};
	for(i=0;i<=n-1;i++)
	{
		for(j=0;j<=m-1;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(i=0;i<=n-1;i++)
	{
		for(j=0;j<=m-1;j++)
		{
			rowsum[i]=rowsum[i]+a[i][j];
		}
	}
	/*signed int maxrowsum=rowsum[0],secondrowsum=rowsum[0];
	for(i=0;i<=n-1;i++)
	{
		if(rowsum[i]>maxrowsum)
		{
			secondrowsum=maxrowsum;
			maxrowsum=rowsum[i];
		}
		else if(rowsum[i]>secondrowsum)
		{
			secondrowsum=rowsum[i];
		}
	}*/
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-1-i;j++)
		{
			if(rowsum[j]>rowsum[j+1])
			{
				int temp1=rowsum[j];
				rowsum[j]=rowsum[j+1];
				rowsum[j+1]=temp1;
			}
		}
	}
    int row=rowsum[n-1]+rowsum[n-2];
	for(j=0;j<=m-1;j++)
	{
		for(i=0;i<=n-1;i++)
		{
			colsum[j]=colsum[j]+a[i][j];
		}
	}
	/*signed int maxcolsum=colsum[0],secondcolsum=colsum[0];
	for(j=0;j<=n-1;j++)
	{
		if(colsum[j]>maxcolsum)
		{
			secondcolsum=maxcolsum;
			maxcolsum=colsum[j];
		}
		else if(colsum[j]>secondcolsum)
		{
			secondcolsum=colsum[j];
		}
	}*/
	for(i=0;i<m-1;i++)
	{
		for(j=0;j<m-1-i;j++)
		{
			if(colsum[j]>colsum[j+1])
			{
				int temp2=colsum[j];
				colsum[j]=colsum[j+1];
				colsum[j+1]=temp2;
			}
		}
	}
	int col=colsum[m-1]+colsum[m-2];
	int result=row>col?row:col;
	printf("%d",result);
	return 0;
} 

